/* 
     electron 基于 Node构建 （可以使用node的Api）
     Electron由三个主要支柱组成：
        Chromium 用于显示网页内容。
        Node.js 用于本地文件系统和操作系统。
        自定义 APIs 用于使用经常需要的 OS 本机函数。
     分为主线程与渲染进程
     主线程：管理所有 网页及其对应的渲染过程。
     渲染进程： 只能管理 相应的网页。 在一个渲染过程中崩溃不会影响其他渲染过程。 

     API 由 事件 方法 属性 构成

     主进程模块：
      app ：控制应用程序的事件生命周期。
         事件： ready     准备就绪
         方法： exit()    强制退出，没有任何询问通知

      BrowserWindow : 创建和控制浏览器窗口。
         实例属性： webContents  等同于浏览器中的window对象
                   webContents.openDevTools()  开启开发者工具
                   id   唯一实例
         实例方法:
                  loadFile() :加载指定页面到窗口中，支持绝对、相对路径  推荐使用相对路径，
                  相对路径默认指向应用程序的根目录
                  loadURL() : 支持加载远程文件，http协议  file协议

     渲染进程模块
      remote : 在渲染进程中使用主进程模块 (远程访问主进程)
         通过 getGlobal() 方法 获取到主进程中的全局变量

     数据共享与通信
     IPC : 进程间通信
         ipcMain : 主进程通信
         ipcRenderer : 渲染进程通信


      打包：   electron-builder打包详解 参考文章：https://blog.csdn.net/weixin_34162695/article/details/91461372
         1.安装 electron-builder    npm i electron-builder -D
         2.配置 package.json 新增 "build" 配置项   https://www.electron.build/configuration/configuration
            "build":{
               "appId":"your.id",  // 唯一标识 id Mac需要用到
               "productName":"electron-app", // 产品名称
               "copyright":"Copyright © 2020 kanglang",  // 版权信息
               "directories":{  // 目录
                  "output":"./dist"     // 打包输出目录
               },
               "win":{
                  "target":"nsis",       // 打包的目标类型 window系统，nsis：生成安装的可执行文件
                  "icon":"./app/source/exe.ico",   // exe图标  ico必须是制作的，不能是简单的图片后缀名改成ico，大小必须是256*256及以上
                  "legalTrademarks":"注册商标"
               },
               "nsis":{
                  "oneClick":false,   // 是否创建一键式安装程序，一键安装无选择安装目录等 （默认为true） /false:辅助安装程序
                  "allowToChangeInstallationDirectory" :true  //  允许改变安装目录  （默认为false） 仅为辅助安装程序可更改
                  "uninstallerIcon":"./app/source/uninstall.ico" // 卸载程序图标 （相对于项目根目录路径）
                  "license":"./app/source/license.txt"
               }
            }
         Mac Window Linux 三大对应打包配置
            Mac： mac mas dmg pkg
            Window: win nsis nsisWeb appx squirrelWindows 
            Linux：linux deb snap appIamge pacman rpm freebsd p5p apk

         3.配置命令 package.json 新增命令build：  ./node_modules/.bin/electron-builder -w
                           -w : windonws
                           -m : mac
                           -l : linux


         npm ru build 首次打包可能会出现download xxx 失败的情况
            两种方式可以解决：
            1.设置镜像：在C盘User中找到.npmrc文件。然后加入下面这句代码,但是这个有时候也不是很好用
                  ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/  
            2.复制下载路径，浏览器直接下载，然后放到对应的electron或electron-builder  C:\用户\...\AppData\Local\electron或electron-builder\Cache目录下
*/